"""
Дополнительная обработка вакансий.
Нормализация телефонов. Нормализация названий организаций.
Удаление дублей организаций по названию и по номеру телефона.
Бан организаций по имени.
Поиск организаций в ЛЕКСЕМе по номеру телефона.
Поиск организаций в ЛЕКСЕМе по имени.
"""


import sys
# from time import time
#from PyQt5.QtCore import *
#from PyQt5.QtGui import *
# from PyQt5.QtWebKitWidgets import *
from PyQt5.QtSql import *
from PyQt5.QtWidgets import *

import logging                                                                  # запись логов
# import re                                                                       # регулярные выражения

if __name__ == '__main__':                                                      # ОСНОВНОЙ ЦИКЛ
    app = QApplication(sys.argv)

    logging.basicConfig(filename='log.txt',level=logging.DEBUG)


    dbIn = QSqlDatabase.addDatabase("QODBC", "MSSQL")                                    # соедиение с лексемой
    dbIn.setDatabaseName("lexema")
    dbIn.setUserName("sa")
    dbIn.setPassword("5318")
    if not dbIn.open():
        print("")
        logging.error("нет соединения с MSSQL")
        quit()

    dbOut = QSqlDatabase.addDatabase("QMYSQL", "MYSQL")
    dbOut.setHostName("sserver")
    dbOut.setDatabaseName("crm")
    dbOut.setUserName("usercrm")
    dbOut.setPassword("passwdcrm")
    if not dbOut.open():
        print("")
        logging.error("нет соединения с MySQL")
        quit()

    lexema = QSqlQuery(dbIn)
    sql = ("SELECT Code, Adres, INN, Account FROM dbo.Spr_Org")
                   
    logging.debug('Вход|{}|'.format(sql))
    lexema.exec(sql)
    lexema.next();                                                      # количество записей
    print(lexema.value(0))
#    lexema.next();                                                      # количество записей

    crm = QSqlQuery(dbOut)
    sql = ("INSERT INTO crm (address_legal,inn,bank) VALUES ('{}','{}','{}');".                   # в INSERT запрос
        format(lexema.value(1), lexema.value(2), lexema.value(3)))
    logging.debug('Выход|{}|'.format(sql))

    crm.prepare("INSERT INTO customer (address_legal,inn,bank) "
                   "VALUES (?, ?, ?)")
    crm.addBindValue(lexema.value(1))
    crm.addBindValue(lexema.value(2))
    crm.addBindValue(lexema.value(3))
    if not crm.exec_():
        logging.error("ошибка MySQL: {}".format(crm.lastError().text()))
        quit()
     
    dbIn.close()
    QSqlDatabase.removeDatabase("MSSQL")
    dbOut.close()
    QSqlDatabase.removeDatabase("MySQL")
